package com.ruoyi.ldzlsb.service;

import java.util.List;
import com.ruoyi.ldzlsb.domain.SbInspectionDateDetail;
import com.ruoyi.ldzlsb.domain.SbInspectionItem;

/**
 * 巡检日期明细Service接口
 * 
 * @author ruoyi
 */
public interface ISbInspectionDateDetailService 
{
    /**
     * 查询巡检日期明细
     * 
     * @param detailId 巡检日期明细主键
     * @return 巡检日期明细
     */
    public SbInspectionDateDetail selectSbInspectionDateDetailByDetailId(Long detailId);

    /**
     * 查询巡检日期明细列表
     * 
     * @param sbInspectionDateDetail 巡检日期明细
     * @return 巡检日期明细集合
     */
    public List<SbInspectionDateDetail> selectSbInspectionDateDetailList(SbInspectionDateDetail sbInspectionDateDetail);

    /**
     * 新增巡检日期明细
     * 
     * @param sbInspectionDateDetail 巡检日期明细
     * @return 结果
     */
    public int insertSbInspectionDateDetail(SbInspectionDateDetail sbInspectionDateDetail);

    /**
     * 修改巡检日期明细
     * 
     * @param sbInspectionDateDetail 巡检日期明细
     * @return 结果
     */
    public int updateSbInspectionDateDetail(SbInspectionDateDetail sbInspectionDateDetail);

    /**
     * 批量删除巡检日期明细
     * 
     * @param detailIds 需要删除的巡检日期明细主键集合
     * @return 结果
     */
    public int deleteSbInspectionDateDetailByDetailIds(Long[] detailIds);

    /**
     * 删除巡检日期明细信息
     * 
     * @param detailId 巡检日期明细主键
     * @return 结果
     */
    public int deleteSbInspectionDateDetailByDetailId(Long detailId);
    
    /**
     * 根据日期记录ID查询巡检日期明细列表
     * 
     * @param dateRecordId 日期记录ID
     * @return 巡检日期明细集合
     */
    public List<SbInspectionDateDetail> selectSbInspectionDateDetailByDateRecordId(Long dateRecordId);
    
    /**
     * 批量插入巡检日期明细
     * 
     * @param detailList 巡检日期明细列表
     * @return 结果
     */
    public int batchInsertSbInspectionDateDetail(List<SbInspectionDateDetail> detailList);
    
    /**
     * 根据日期记录ID删除巡检日期明细
     * 
     * @param dateRecordId 日期记录ID
     * @return 结果
     */
    public int deleteSbInspectionDateDetailByDateRecordId(Long dateRecordId);
    
    /**
     * 根据巡检项列表生成巡检日期明细列表
     * 
     * @param dateRecordId 日期记录ID
     * @param items 巡检项列表
     * @return 巡检日期明细列表
     */
    public List<SbInspectionDateDetail> generateDetailsFromItems(Long dateRecordId, List<SbInspectionItem> items);
    
    /**
     * 批量保存巡检日期明细
     * 
     * @param dateRecordId 日期记录ID
     * @param detailList 巡检日期明细列表
     * @return 结果
     */
    public int batchSaveDetails(Long dateRecordId, List<SbInspectionDateDetail> detailList);
} 